from operator import index

s="Python is great!"

#字符串反转: 给定字符串`s = "Python is great!"`，不使用任何内置函数，编写代码以反转字符串
s1=s[-1::-1]

#字符计数: 对于同一个字符串`s`，计算字符 `t'` 在其中出现的次数
count = s.count('t')

#替换字符: 把字符串`s` 中的所有空格替换成下划线
s2 = s.replace(' ','_')
# print(s2)

#检查回文: 检查字符串`s2 = "A man, a plan, a canal, Panama!"` 在忽略大小写、标点和空格的情况下是否为回文字符串
def huiwen(str1:str):
    str2 = str1.lower()#统一小写
    str3 = str2.replace(","," ")
    str4 = str3.replace(' ','')

    for i in range(len(str1)//2):
        if str4[i] != str4[-(i+1)]:
            return False
    return True
# print(huiwen( "A man, a plan, a canal, Panama!"))

#子字符串查找: 在`s` 中查找第一次出现子字符串 `is"` 的位置
inde=s.index('is')
# print( inde)

#字符串插入: 在`s` 中第一个 `t'` 字符之后插入子字符串`"_inserted"
def insert_str(str1:str,str2:str,str3:str):
    num = str1.index(str3)
    str4 = str1[:num]+str2+str1[num:]
    return str4
# print(insert_str("hello world","_inserted"," "))

#部分替换: 替换`s` 中第一次出现的 `great"` 为 `awesome"`
def change_first_str(str1:str,str2:str,str3:str):
    num = str1.index(str2)
    str4 = str1[:num]+str3+str1[num]
    return str4
# print(change_first_str(s,"great","awesome"))

#切片与拼接: 将`s` 切分为两部分，其中第一部分包含前半部分的字符，第二部分包含后半部分的字符，然后将这两部分以相反顺序拼接起来
s1=s[:len(s)//2]
s2=s[len(s)//2:]
# print(s2+s1)

# 创建字符串列表: 使用列表生成式，根据字符串`s` 创建一个列表，其中包含`s` 的每个单词的首字母大写形式
s_list = [i.capitalize() for i in  s.split(" ")]
# print(s_list)

# 字符替换加密: 编写一个函数`encrypt`，使用字典 `a: m, b: n, ... z: l}` 的对应规则加密字符串`s3 = "encryption"`
def encrypt(str1:str):
    dict ={'a':'m','b':'n','c':'o','d':'p','e':'q','f':'r','g':'s','h':'t','i':'u','j':'v','k':'w','l':'x','m':'y','n':'z','o':'a','p':'b','q':'c','r':'d','s':'e','t':'f','u':'g','v':'h','w':'i','x':'j','y':'k','z':'l'}
    str2 =''
    for i in range(len(str1)):
        str2 = str2+dict[str1[i]]
    return str2
print(encrypt("encryption"))